﻿#include <cstdio>
#include "client1.h"
#include "server1.h"
#include "xxx.h"
#include <thread>  //线程

/* 
引入线程
    Q:是server1();xxx();client1();那么由于server1()会阻塞直到有请求，so后面的执行不了
    S:用一个线程启动 server1()，然后直接调用 client1()
*/

/* 
为什么要让主线程休1秒  std::this_thread::sleep_for(std::chrono::seconds(1))
    如果不休那么在serverThread线程建立之后，主线程马上去执行xxx()和client(),
    这时serverThread执行的server1可能还没有执行到listen，这样client的connect就空了
*/

int main()
{
    printf("%s 向你问好!\n", "day0linux");
    //启动服务器线程
    std::thread serverThread(server1);
    //给服务器一点时间启动
    std::this_thread::sleep_for(std::chrono::seconds(1));//当前线程(主线程)休1s
    xxx();
    client1();
    
    // 等待服务器线程结束
    //serverThread.join();
    return 0;
}